基于Schema的AOPA配置
本文相关代码(来自官方源码spring-test模块)请参见spring-framework org.springframework.mylearntest包下。
基于Schema的AOP配置
基于Schema的AOP是Spring2.0发布之后新增加的一种AOP使用方式。可以从如下两个角度来看待基于Schema的AOP。
-
配置方式的改变 : Spring框架从1.x版本升级到2.x版本之后,提倡容器配置方式从基于DTD的xml转向了基于Schema的xml,进一步提高了配置方式的灵活性和可扩展型。同时,新的Schema的配置方式为Spring的AOP功能专门提供了独有的命名空间。原来1.x中基于DTD的AOP配置方式,可以稍微转换一下配置方式就移植到基于Schema的AOP,所以从这一点来说,基于Schema的AOP只是配置方式的改变。
-
@AspectJ形式AOP的折中: 要使用@AspectJ形式的AOP,必须要求使用Java 5或者更高版本的JDK或者JRE,因为注解是Java 5发布之后才引入的特性。如果我们不得不使用Java 5之前的版本,而又想使用基于POJO的Aspect声明方式,我们可以使用基于Schema的Spring AOP。使用基于Schema的AOP,我们依然可以使用POJO声明Aspect以及相关的Advice。不过不需要注解标记了,直接通过Schema的配置文件进行配置就可以,@AspectJ形式的Pointcut表达式也全都可以配置到基于Schema的配置文件中。